package com.ecoolex.discount.sales.core.mapper;

import com.ecoolex.discount.sales.entity.DiscountBrand;
import com.ecoolex.discount.sales.entity.DiscountBrandExample;
import com.ecoolex.discount.sales.entity.DiscountBrandWithBLOBs;
import com.ecoolex.framework.common.annotation.Description;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.lang.NonNull;

public interface DiscountBrandMapper {
    long countByExample(DiscountBrandExample example);

    int deleteByExample(DiscountBrandExample example);

    int deleteByPrimaryKey(Integer brandId);

    int insert(DiscountBrandWithBLOBs record);

    int insertSelective(@Param("record") DiscountBrandWithBLOBs record, @Param("selective") DiscountBrandWithBLOBs.Column ... selective);

    DiscountBrand selectOneByExample(DiscountBrandExample example);

    DiscountBrandWithBLOBs selectOneByExampleWithBLOBs(DiscountBrandExample example);

    List<DiscountBrandWithBLOBs> selectByExampleWithBLOBs(DiscountBrandExample example);

    List<DiscountBrand> selectByExample(DiscountBrandExample example);

    DiscountBrandWithBLOBs selectByPrimaryKey(Integer brandId);

    DiscountBrandWithBLOBs selectByPrimaryKeyWithLogicalDelete(@Param("brandId") Integer brandId, @Param("andLogicalDeleted") boolean andLogicalDeleted);

    int updateByExampleSelective(@Param("record") DiscountBrandWithBLOBs record, @Param("example") DiscountBrandExample example, @Param("selective") DiscountBrandWithBLOBs.Column ... selective);

    int updateByExampleWithBLOBs(@Param("record") DiscountBrandWithBLOBs record, @Param("example") DiscountBrandExample example);

    int updateByExample(@Param("record") DiscountBrand record, @Param("example") DiscountBrandExample example);

    int updateByPrimaryKeySelective(@Param("record") DiscountBrandWithBLOBs record, @Param("selective") DiscountBrandWithBLOBs.Column ... selective);

    int updateByPrimaryKeyWithBLOBs(DiscountBrandWithBLOBs record);

    int updateByPrimaryKey(DiscountBrand record);

    int batchInsert(@Param("list") List<DiscountBrandWithBLOBs> list);

    int batchInsertSelective(@Param("list") List<DiscountBrandWithBLOBs> list, @Param("selective") DiscountBrandWithBLOBs.Column ... selective);

    int logicalDeleteByExample(@Param("example") DiscountBrandExample example);

    int logicalDeleteByPrimaryKey(Integer brandId);
}